﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using EYDIngenieria.ERP.Aplicacion.Mantenedores;
using EYDIngenieria.ERP.ObjetosDeNegocio.Dominio;

public partial class Mantenedores_MantenedorBanco : System.Web.UI.Page
{
    private EYDIngenieria.ERP.Aplicacion.Mantenedores.MantenedorCuentaCorriente mantenedor = new MantenedorCuentaCorriente();
    private EYDIngenieria.ERP.Aplicacion.Mantenedores.MantenedorBanco mantenedorBanco = new MantenedorBanco();
    
    protected void Page_Load(object sender, EventArgs e)
    {

        if (!IsPostBack)
        {
            MantenedorVistaInicial();
            ddlBanco.DataTextField = "Codigo";
            ddlBanco.DataValueField = "Id";
            ddlBanco.DataSource = mantenedorBanco.Listar();
            ddlBanco.DataBind();
            ListItem li = new ListItem("Seleccione","0");
            ddlBanco.Items.Insert(0,li);
            
       }
}

    protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {
        SetearFormulario();
        MantenedorVisualizacion();
    }

    private void SetearFormulario()
    {
        int id = (gdvCuentaCorriente.SelectedValue == null) ? 0 : int.Parse(gdvCuentaCorriente.SelectedValue.ToString());
        
        txbNumero.Text = string.Empty;
        ddlBanco.SelectedIndex = -1;
        if(id>0)
        {
            
            CuentaCorriente u = mantenedor.Obtener(id);
            ddlBanco.SelectedValue = u.Banco.Id.ToString();
            txbNumero.Text = u.Numero;
            
            
        }
        
        
    }

    private void MantenedorVistaInicial()
    {
        txbNumero.Enabled = false;
 
        btnNuevo.Visible = true;
        btnAceptar.Visible = false;
        btnCancelar.Visible = false;
        btnEliminar.Visible = false;
        btnModificar.Visible = false;
        SetearFormulario();
    }

    private void MantenedorVisualizacion()
    {
        SetearFormulario();
        txbNumero.Enabled = false;

        btnNuevo.Visible = true;
        btnAceptar.Visible = false;
        btnCancelar.Visible = false;
        btnEliminar.Visible = true;
        btnModificar.Visible = true;
        
    }

    private void MantenedorVistaGestion()
    {
        SetearFormulario();
        txbNumero.Enabled = true;
        btnNuevo.Visible = false;
        btnAceptar.Visible = true;
        btnCancelar.Visible = true;
        btnEliminar.Visible = false;
        btnModificar.Visible = false;
    }



    protected void btnNuevo_Click(object sender, EventArgs e)
    {
        gdvCuentaCorriente.SelectedIndex = -1;
        SetearFormulario();
        MantenedorVistaGestion();
    }
    protected void btnModificar_Click(object sender, EventArgs e)
    {      
        MantenedorVistaGestion();
    }
    protected void btnEliminar_Click(object sender, EventArgs e)
    {
        int id = (gdvCuentaCorriente.SelectedValue == null) ? 0 : int.Parse(gdvCuentaCorriente.SelectedValue.ToString());
        if(id ==0) 
            return;

        CuentaCorriente u = mantenedor.Obtener(id);
        u.Numero = txbNumero.Text;
        mantenedor.Eliminar(u);
        gdvCuentaCorriente.SelectedIndex = -1;
        ActualizaDataSource();
        SetearFormulario();
    }
    protected void btnCancelar_Click(object sender, EventArgs e)
    {
        int id = (gdvCuentaCorriente.SelectedValue == null) ? 0 : int.Parse(gdvCuentaCorriente.SelectedValue.ToString());
        if(id>0)
        MantenedorVisualizacion();
        else
            MantenedorVistaInicial();
    }
    protected void btnAceptar_Click(object sender, EventArgs e)
    {
        int id = (gdvCuentaCorriente.SelectedValue == null) ? 0 : int.Parse(gdvCuentaCorriente.SelectedValue.ToString());
        CuentaCorriente o = new CuentaCorriente();
        o.Numero = txbNumero.Text;
        o.Banco = mantenedorBanco.Obtener(int.Parse(ddlBanco.SelectedValue));
        o.Descripcion = o.Banco.Codigo + "-" + o.Numero.ToString();
        o.Id = id;
        
        if(id==0) 
        {
            mantenedor.Agregar(o);
        }
        else
        {
            mantenedor.Modificar(o);
        }
          
        ActualizaDataSource();
        MantenedorVistaInicial();
        
    }

    private void ActualizaDataSource()
    {
        odsCuentaCorriente.Select();
        odsCuentaCorriente.DataBind();
        gdvCuentaCorriente.DataBind();
        
       
    }
   
   
}
